﻿namespace DefenderUI
{
    /// <summary>
    /// Defines the possible outcomes of a file scan in a strongly-typed manner.
    /// Using an enum improves code readability and prevents errors from typos.
    /// </summary>
    public enum ScanStatus
    {
        Clean,
        ThreatFound,
        Error,
        Cancelled,
        Success
    }

    /// <summary>
    /// A data-centric class that holds all relevant information about the result
    /// of a single file scan.
    /// </summary>
    public class ScanResult
    {
        /// <summary>
        /// The full path of the file that was scanned.
        /// </summary>
        public string FilePath { get; set; }

        /// <summary>
        /// The final status of the scan (e.g., Clean, ThreatFound).
        /// </summary>
        public ScanStatus Status { get; set; }

        /// <summary>
        /// A brief, human-readable message summarizing the status.
        /// </summary>
        public string Message { get; set; }

        /// <summary>
        /// The specific name of the threat if one was detected (e.g., "Trojan:Win32/Wacatac.B!ml").
        /// This will be null if no threat was found.
        /// </summary>
        public string ThreatName { get; set; }
    }
}
